02. 风格迁移

风格迁移

为了展示深度学习模型可以实现的各种功能,我们现在来研究一个非常有趣的项目,叫做快速风格迁移。通过风格迁移,你可以按照著名的画作重新创建风格一样的图片!神经网络会学习这些画作采用的技巧,并学会如何自己应用这些绘画技巧。此模型根据著名画作的风格进行了训练,能够将这些风格迁移到其他图片上,甚至视频上

我用该模型对我的猫咪 Chihiro 的图片进行了风格迁移,采用的是 HokusaiThe Great Wave Off Kanagawa

要自己试一下,你可以在 fast-style-transfer GitHub 资源库 中找到相关代码。你可以使用 git 克隆该资源库,或将整个资源库下载为 Zip 归档文件,并解压。

该神经网络按照(此处)的几种不同风格进行了训练,并保存在检查点文件中。检查点文件包含了关于已训练神经网络的所有信息,可以将风格应用到新的图片上。

依赖项

安装运行该代码所需的所有程序包的最简单方式是使用 Miniconda,它是更简版本的 Anaconda。 Miniconda 自带了 Conda,后者是专门用于数据科学的程序包和环境管理器。请安装适合你的操作系统的 Python 3 版本的 Miniconda。

如果你之前没有使用过 Conda,请快速阅读我们在上一课的教程。

Windows

对于 Windows,你需要安装 TensorFlow 0.12.1、Python 3.5、Pillow 3.4.2、scipy 0.18.1 和 numpy 1.11.2。安装 Miniconda 后,打开你的命令提示符窗口。然后逐行输入以下命令:

conda create -n style-transfer python=3.5
activate style-transfer
pip install tensorflow
conda install scipy pillow

第一行创建一个新的环境,其中存储了格式迁移代码所需的程序包。第二行 (activate style-transfer) 会进入该环境,你应该会在提示符窗口的开头看到环境名称。接下来的两行负责安装 TensorFlow、Scipy 和 Pillow(一种图像处理库)。

OS X 和 Linux

对于 OS X 和 Linux,你需要安装 TensorFlow 0.11.0、Python 2.7.9、Pillow 3.4.2、scipy 0.18.1 和 numpy 1.11.2.

在终端里,逐行输入以下命令:

conda create -n style-transfer python=2.7.9
source activate style-transfer
pip install tensorflow
conda install scipy pillow

第一行创建一个新的环境,其中存储了格式迁移代码所需的程序包。第二行 (source activate style-transfer) 进入该环境,你应该会在提示符窗口的开头看到环境名称。接下来的两行负责安装 TensorFlow、Scipy 和 Pillow(一种图像处理库)。

迁移风格

  1. fast-style-transfer资源库中下载 Zip 归档文件并解压。你可以通过点击右侧的亮绿色按钮进行下载。
  2. 此处下载 Rain Princess 检查点,将其放在 fast-style-transfer 文件夹中。检查点文件是已经调谐参数的模型。使用此检查点文件后我们不需要再训练该模型,可以直接使用。
  3. 将你要调整格式的图片放到 fast-style-transfer 文件夹。
  4. 进入你之前创建的 Conda 环境(如果不在里面的话)。
  5. 在终端里,转到 fast-style-transfer 文件夹并输入
python evaluate.py --checkpoint ./rain-princess.ckpt --in-path <path_to_input_file> --out-path ./output_image.jpg

注意:你的检查点文件可能名称为 rain_princess.ckpt,注意是下划线,而不是上面的连字符。

你可以在此页面的底部获得更多检查点文件,都试试吧!

请在论坛(中文论坛上分享你创建的内容。我们非常希望能够看到你的成果。此外,你也可以去训练你自己的图片上的网络,你可以在资源库中找到说明(但是需要足够的硬件支持)。

注意:要留意输入图片的大小,风格迁移在运行大型文件时,会花费很长的时间。

风格迁移清单

Task List:

Task Feedback:

恭喜!你能够使用深度学习进行风格迁移了!

Checkpoint 按照以下画作进行了训练: